/**
 * Copyrigth 2007 Aurelien Moreau
 * 
 * This file is part of ProcessShop.
 * 
 * ProcessShop is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * ProcessShop is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with ProcessShop; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * $Id$
 */
package net.yienyien.process.dfm;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see net.yienyien.process.dfm.DfmFactory
 * @model kind="package"
 * @generated
 */
public interface DfmPackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "dfm";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "http://www.yienyien.net/process/dfm";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "dfm";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	DfmPackage eINSTANCE = net.yienyien.process.dfm.impl.DfmPackageImpl.init();

	/**
	 * The meta object id for the '{@link net.yienyien.process.dfm.impl.DataFlowImpl <em>Data Flow</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.dfm.impl.DataFlowImpl
	 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getDataFlow()
	 * @generated
	 */
	int DATA_FLOW = 0;

	/**
	 * The feature id for the '<em><b>Data Activities</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_FLOW__DATA_ACTIVITIES = 0;

	/**
	 * The feature id for the '<em><b>Data Links</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_FLOW__DATA_LINKS = 1;

	/**
	 * The number of structural features of the '<em>Data Flow</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_FLOW_FEATURE_COUNT = 2;

	/**
	 * The meta object id for the '{@link net.yienyien.process.dfm.impl.DataLinkImpl <em>Data Link</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.dfm.impl.DataLinkImpl
	 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getDataLink()
	 * @generated
	 */
	int DATA_LINK = 1;

	/**
	 * The feature id for the '<em><b>Input Activity</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_LINK__INPUT_ACTIVITY = 0;

	/**
	 * The feature id for the '<em><b>Output Activity</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_LINK__OUTPUT_ACTIVITY = 1;

	/**
	 * The feature id for the '<em><b>Maps</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_LINK__MAPS = 2;

	/**
	 * The number of structural features of the '<em>Data Link</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_LINK_FEATURE_COUNT = 3;

	/**
	 * The meta object id for the '{@link net.yienyien.process.dfm.impl.DataActivityImpl <em>Data Activity</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.dfm.impl.DataActivityImpl
	 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getDataActivity()
	 * @generated
	 */
	int DATA_ACTIVITY = 2;

	/**
	 * The feature id for the '<em><b>Input Container</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_ACTIVITY__INPUT_CONTAINER = 0;

	/**
	 * The feature id for the '<em><b>Output Container</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_ACTIVITY__OUTPUT_CONTAINER = 1;

	/**
	 * The feature id for the '<em><b>Object</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_ACTIVITY__OBJECT = 2;

	/**
	 * The number of structural features of the '<em>Data Activity</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DATA_ACTIVITY_FEATURE_COUNT = 3;

	/**
	 * The meta object id for the '{@link net.yienyien.process.dfm.impl.ContainerImpl <em>Container</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.dfm.impl.ContainerImpl
	 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getContainer()
	 * @generated
	 */
	int CONTAINER = 3;

	/**
	 * The feature id for the '<em><b>Parts</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONTAINER__PARTS = 0;

	/**
	 * The number of structural features of the '<em>Container</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONTAINER_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link net.yienyien.process.dfm.impl.PartImpl <em>Part</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.dfm.impl.PartImpl
	 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getPart()
	 * @generated
	 */
	int PART = 4;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PART__NAME = 0;

	/**
	 * The number of structural features of the '<em>Part</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PART_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link net.yienyien.process.dfm.impl.MapImpl <em>Map</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see net.yienyien.process.dfm.impl.MapImpl
	 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getMap()
	 * @generated
	 */
	int MAP = 5;

	/**
	 * The feature id for the '<em><b>From</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MAP__FROM = 0;

	/**
	 * The feature id for the '<em><b>To</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MAP__TO = 1;

	/**
	 * The number of structural features of the '<em>Map</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MAP_FEATURE_COUNT = 2;


	/**
	 * Returns the meta object for class '{@link net.yienyien.process.dfm.DataFlow <em>Data Flow</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Data Flow</em>'.
	 * @see net.yienyien.process.dfm.DataFlow
	 * @generated
	 */
	EClass getDataFlow();

	/**
	 * Returns the meta object for the containment reference list '{@link net.yienyien.process.dfm.DataFlow#getDataActivities <em>Data Activities</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Data Activities</em>'.
	 * @see net.yienyien.process.dfm.DataFlow#getDataActivities()
	 * @see #getDataFlow()
	 * @generated
	 */
	EReference getDataFlow_DataActivities();

	/**
	 * Returns the meta object for the containment reference list '{@link net.yienyien.process.dfm.DataFlow#getDataLinks <em>Data Links</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Data Links</em>'.
	 * @see net.yienyien.process.dfm.DataFlow#getDataLinks()
	 * @see #getDataFlow()
	 * @generated
	 */
	EReference getDataFlow_DataLinks();

	/**
	 * Returns the meta object for class '{@link net.yienyien.process.dfm.DataLink <em>Data Link</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Data Link</em>'.
	 * @see net.yienyien.process.dfm.DataLink
	 * @generated
	 */
	EClass getDataLink();

	/**
	 * Returns the meta object for the reference '{@link net.yienyien.process.dfm.DataLink#getInputActivity <em>Input Activity</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Input Activity</em>'.
	 * @see net.yienyien.process.dfm.DataLink#getInputActivity()
	 * @see #getDataLink()
	 * @generated
	 */
	EReference getDataLink_InputActivity();

	/**
	 * Returns the meta object for the reference '{@link net.yienyien.process.dfm.DataLink#getOutputActivity <em>Output Activity</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Output Activity</em>'.
	 * @see net.yienyien.process.dfm.DataLink#getOutputActivity()
	 * @see #getDataLink()
	 * @generated
	 */
	EReference getDataLink_OutputActivity();

	/**
	 * Returns the meta object for the containment reference list '{@link net.yienyien.process.dfm.DataLink#getMaps <em>Maps</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Maps</em>'.
	 * @see net.yienyien.process.dfm.DataLink#getMaps()
	 * @see #getDataLink()
	 * @generated
	 */
	EReference getDataLink_Maps();

	/**
	 * Returns the meta object for class '{@link net.yienyien.process.dfm.DataActivity <em>Data Activity</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Data Activity</em>'.
	 * @see net.yienyien.process.dfm.DataActivity
	 * @generated
	 */
	EClass getDataActivity();

	/**
	 * Returns the meta object for the containment reference '{@link net.yienyien.process.dfm.DataActivity#getInputContainer <em>Input Container</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Input Container</em>'.
	 * @see net.yienyien.process.dfm.DataActivity#getInputContainer()
	 * @see #getDataActivity()
	 * @generated
	 */
	EReference getDataActivity_InputContainer();

	/**
	 * Returns the meta object for the containment reference '{@link net.yienyien.process.dfm.DataActivity#getOutputContainer <em>Output Container</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Output Container</em>'.
	 * @see net.yienyien.process.dfm.DataActivity#getOutputContainer()
	 * @see #getDataActivity()
	 * @generated
	 */
	EReference getDataActivity_OutputContainer();

	/**
	 * Returns the meta object for the reference '{@link net.yienyien.process.dfm.DataActivity#getObject <em>Object</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Object</em>'.
	 * @see net.yienyien.process.dfm.DataActivity#getObject()
	 * @see #getDataActivity()
	 * @generated
	 */
	EReference getDataActivity_Object();

	/**
	 * Returns the meta object for class '{@link net.yienyien.process.dfm.Container <em>Container</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Container</em>'.
	 * @see net.yienyien.process.dfm.Container
	 * @generated
	 */
	EClass getContainer();

	/**
	 * Returns the meta object for the containment reference list '{@link net.yienyien.process.dfm.Container#getParts <em>Parts</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Parts</em>'.
	 * @see net.yienyien.process.dfm.Container#getParts()
	 * @see #getContainer()
	 * @generated
	 */
	EReference getContainer_Parts();

	/**
	 * Returns the meta object for class '{@link net.yienyien.process.dfm.Part <em>Part</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Part</em>'.
	 * @see net.yienyien.process.dfm.Part
	 * @generated
	 */
	EClass getPart();

	/**
	 * Returns the meta object for the attribute '{@link net.yienyien.process.dfm.Part#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see net.yienyien.process.dfm.Part#getName()
	 * @see #getPart()
	 * @generated
	 */
	EAttribute getPart_Name();

	/**
	 * Returns the meta object for class '{@link net.yienyien.process.dfm.Map <em>Map</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Map</em>'.
	 * @see net.yienyien.process.dfm.Map
	 * @generated
	 */
	EClass getMap();

	/**
	 * Returns the meta object for the reference '{@link net.yienyien.process.dfm.Map#getFrom <em>From</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>From</em>'.
	 * @see net.yienyien.process.dfm.Map#getFrom()
	 * @see #getMap()
	 * @generated
	 */
	EReference getMap_From();

	/**
	 * Returns the meta object for the reference '{@link net.yienyien.process.dfm.Map#getTo <em>To</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>To</em>'.
	 * @see net.yienyien.process.dfm.Map#getTo()
	 * @see #getMap()
	 * @generated
	 */
	EReference getMap_To();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	DfmFactory getDfmFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link net.yienyien.process.dfm.impl.DataFlowImpl <em>Data Flow</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.dfm.impl.DataFlowImpl
		 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getDataFlow()
		 * @generated
		 */
		EClass DATA_FLOW = eINSTANCE.getDataFlow();

		/**
		 * The meta object literal for the '<em><b>Data Activities</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DATA_FLOW__DATA_ACTIVITIES = eINSTANCE.getDataFlow_DataActivities();

		/**
		 * The meta object literal for the '<em><b>Data Links</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DATA_FLOW__DATA_LINKS = eINSTANCE.getDataFlow_DataLinks();

		/**
		 * The meta object literal for the '{@link net.yienyien.process.dfm.impl.DataLinkImpl <em>Data Link</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.dfm.impl.DataLinkImpl
		 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getDataLink()
		 * @generated
		 */
		EClass DATA_LINK = eINSTANCE.getDataLink();

		/**
		 * The meta object literal for the '<em><b>Input Activity</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DATA_LINK__INPUT_ACTIVITY = eINSTANCE.getDataLink_InputActivity();

		/**
		 * The meta object literal for the '<em><b>Output Activity</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DATA_LINK__OUTPUT_ACTIVITY = eINSTANCE.getDataLink_OutputActivity();

		/**
		 * The meta object literal for the '<em><b>Maps</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DATA_LINK__MAPS = eINSTANCE.getDataLink_Maps();

		/**
		 * The meta object literal for the '{@link net.yienyien.process.dfm.impl.DataActivityImpl <em>Data Activity</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.dfm.impl.DataActivityImpl
		 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getDataActivity()
		 * @generated
		 */
		EClass DATA_ACTIVITY = eINSTANCE.getDataActivity();

		/**
		 * The meta object literal for the '<em><b>Input Container</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DATA_ACTIVITY__INPUT_CONTAINER = eINSTANCE.getDataActivity_InputContainer();

		/**
		 * The meta object literal for the '<em><b>Output Container</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DATA_ACTIVITY__OUTPUT_CONTAINER = eINSTANCE.getDataActivity_OutputContainer();

		/**
		 * The meta object literal for the '<em><b>Object</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DATA_ACTIVITY__OBJECT = eINSTANCE.getDataActivity_Object();

		/**
		 * The meta object literal for the '{@link net.yienyien.process.dfm.impl.ContainerImpl <em>Container</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.dfm.impl.ContainerImpl
		 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getContainer()
		 * @generated
		 */
		EClass CONTAINER = eINSTANCE.getContainer();

		/**
		 * The meta object literal for the '<em><b>Parts</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CONTAINER__PARTS = eINSTANCE.getContainer_Parts();

		/**
		 * The meta object literal for the '{@link net.yienyien.process.dfm.impl.PartImpl <em>Part</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.dfm.impl.PartImpl
		 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getPart()
		 * @generated
		 */
		EClass PART = eINSTANCE.getPart();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute PART__NAME = eINSTANCE.getPart_Name();

		/**
		 * The meta object literal for the '{@link net.yienyien.process.dfm.impl.MapImpl <em>Map</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see net.yienyien.process.dfm.impl.MapImpl
		 * @see net.yienyien.process.dfm.impl.DfmPackageImpl#getMap()
		 * @generated
		 */
		EClass MAP = eINSTANCE.getMap();

		/**
		 * The meta object literal for the '<em><b>From</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MAP__FROM = eINSTANCE.getMap_From();

		/**
		 * The meta object literal for the '<em><b>To</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MAP__TO = eINSTANCE.getMap_To();

	}

} //DfmPackage
